# -*- iso-8859-1 -*-
# aula3a.py
import random


#exercicio 1
print("\n\nExercicio 1")
notas = {"Programação 1" : 15,
         "Programação 2": 14,
         "Analise Matemática" : 10,
         "Base de dados 1" : 16,
         "Eng. de Software" : 16}
i = 0
media = 0.0

for valor in notas.itervalues():
    #print(valor)
    media += valor
    i += 1
media /= i
print("Sua média é: %4.2f" %media)


#exercicio 2
print("\n\nExercicio 2")

def gerar_cubos(N):
    for i in range(N):
        yield i ** 3
        
print("Chamada 1 para função")
gen = gerar_cubos(5)#Chama a função gerar_cubos enviando valor 5
print gen.next()
print gen.next()
print gen.next()
print gen.next()
print gen.next()

print#Um espaço entre um programa e outro "Enter"

#Faz o mesmo que o bloco anterior com menos linhas.
print("Chamada 2 para função")
for y in gerar_cubos(5):
    print y


#exercicio 3
print("\n\nExercicio 3")
def fatorial(n):
    if n <= 0:
        return 1
    else:
        return n * fatorial(n - 1)

print fatorial(5)
fatorial(5)


#Exercicio proposto 4
print("\n\nExercicio 4")

def md(n):
    if n > 0:
        md(n-1)
media / i
md(len(notas))

print("Sua média é: %4.2f" %media)

#Exercicio proposto 5
print("\n\nExercicio 5")

numeros = []

n = 0
while n <= 1000:
    numeros.append(random.randint (0, 10))
    n += 1

numDif = [x for x in set(numeros)]
print(numDif)

#Exercicio proposto 6
print("\n\nExercicio 6")

for num in numDif:
    h = numeros.count(num)
    print"O No %d aparece: "%num, h

    


